Expand description

This crate implements the base to build a Matrix client library.

Crate Feature Flags

The following crate feature flags are available:

  • encryption: Enables end-to-end encryption support in the library.
  • qrcode: Enables QRcode generation and reading code.
  • testing: Provides facilities and functions for tests, in particular for integration testing store implementations. ATTENTION: do not ever use outside of tests, we do not provide any stability warantees on these, these are merely helpers. If you find you need any function provided here outside of tests, please open a Github Issue and inform us about your use case for us to consider.

Re-exports

pub use http;
pub use matrix_sdk_crypto as crypto;
pub use once_cell;
pub use store::StateChanges;
pub use store::StateStore;
pub use store::StoreError;

Modules

Abstraction over an executor so we can spawn tasks under WASM the same way we do usually.
Common types for media content.
The state store holds the overall state for rooms, users and their profiles and their timelines. It is an overall cache for faster access and convenience- accessible through Store.

Macros

Macro building to allow your StateStore implementation to run the entire tests suite locally.

Structs

A no IO Client implementation.
An unredacted minimal state event.
A redacted minimal state event.
The underlying room data structure collecting state for joined, left and invited rooms.
The underlying pure data structure for joined and left rooms.
A member of a room.
A user session, containing an access token, an optional refresh token and information about the associated user account.
The immutable parts of the session: the user ID and device ID.
The mutable parts of the session: the access token and optional refresh token.

Enums

The name of the room, either from the metadata or calculated according to matrix specification
Internal representation of errors.
A minimal state event.
Enum keeping track in which state the room is, e.g. if our own user is joined, invited, or has left the room.
TimelineStreamErrorexperimental-timeline
Errors in a timeline stream

Traits

Super trait that is used for our store traits, this trait will differ if it’s used on WASM. WASM targets will not require Send and Sync to have implemented, while other targets will.
SendOutsideWasmNon-WebAssembly
Alias for Send on non-wasm, empty trait (implemented by everything) on wasm.
SyncOutsideWasmNon-WebAssembly
Alias for Sync on non-wasm, empty trait (implemented by everything) on wasm.

Type Definitions

A minimal m.room.member event.
Result type of the rust-sdk.